package cn.itcast.service;

import cn.itcast.entity.PageResult;
import cn.itcast.entity.QueryPageBean;
import cn.itcast.pojo.Menu;
import cn.itcast.pojo.Permission;
import cn.itcast.vo.MenuListVo;

import java.util.List;

public interface MenuService {


    /**
     * 分页查询菜单列表
     * @param queryPageBean 查询条件
     * @return
     */
    PageResult findPage(QueryPageBean queryPageBean);


    /**
     * 新增菜单
     * @param permissionIds 权限id数组
     * @param menu  菜单的基本数据
     * @return
     */
    Boolean handleAdd(int[] permissionIds, Menu menu);



    /**
     * 根据id查询单条菜单信息
     * @param id
     * @return
     */
    Menu handleUpdate(Integer id);



    /**
     * 根据id查询单条菜单的权限信息
     * @param id
     * @return
     */
    List<Integer> handleUpdatePermissions(Integer id);



    /**
     * 编辑一级菜单/编辑二级菜单
     * @param permissionIds 权限id数组
     * @param menu  菜单的基本数据
     * @return
     */
    Boolean handleEdit(int[] permissionIds, Menu menu);


    /**
     * 根据id删除菜单
     * @param id  菜单的基本数据
     * @return
     */
    Boolean handleDelete(Integer id);


    /**
     * 动态菜单
     * @param userId
     * @return
     */
    List<MenuListVo> findMenuByUserId(Integer userId);


}
